package com.terracloud.server.service.entitiy.tenant.group;

import com.terracloud.server.common.data.TenantGroup;
import com.terracloud.server.common.data.id.TenantGroupId;
import com.terracloud.server.common.data.id.TenantId;
import com.terracloud.server.common.data.page.PageData;
import com.terracloud.server.common.data.page.PageLink;
import com.terracloud.server.service.security.model.SecurityUser;
import com.terracloud.server.vo.TenantGroupRelationUpdateVo;

/**
 *
 * @author chenhainan
 * @since 2025/10/11
 */
public interface TbTenantGroupService {

    TenantGroup saveTenantGroup(TenantGroup TenantGroup, SecurityUser currentUser);

    TenantGroup findTenantGroupById(TenantId tenantId, TenantGroupId id);

    TenantGroup findTenantGroupInfoById(TenantId tenantId, TenantGroupId id);

    void delete(TenantGroup TenantGroup, SecurityUser currentUser);

    PageData<TenantGroup> findTenantGroups(TenantId tenantId, PageLink pageLink);

    void addTenantToGroup(SecurityUser currentUser, TenantGroupRelationUpdateVo TenantGroupRelationUpdateVo);

    void removeTenantFromGroup(SecurityUser currentUser, TenantGroupRelationUpdateVo TenantGroupRelationUpdateVo);
}
